/*****************************************************************************
 *   Copyright 2005 Tim A Wang
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *   limitations under the License.
 *
 ****************************************************************************/
package com.jb.web.renderer;

import com.jb.web.bean.custom.Timer;
import com.jb.web.context.WebContext;

import com.jb.faces.component.UIComponent;


public class TimerRenderer extends ComponentRenderer {
    public StringBuffer renderBegin(WebContext pCtx, UIComponent itemToRender) {
        Timer timer = (Timer) itemToRender;

        //does nothing if runs on the server
        if ("Server".equals(timer.getRunAt())) {
            return new StringBuffer();
        }

        if (isEditable(pCtx, timer)) {
            return super.renderBegin(pCtx, itemToRender);
        } else {
            return new StringBuffer("\n<script >\n<!--\n")
                .append(" var " + timer.getClientId() + "=jbTimer.add(\"" +
                timer.getClientId() + "\",\"" + timer.getOnTimer() + "\",")
              .append((timer.getInterval() == 0L) ? 1000 : timer.getInterval())
              .append("," + timer.getNumberOfTimes()).append(");")
              .append("\n")
                .append(timer.getOnLoad()!=null
                ? (timer.getOnLoad() + ";\n") : "")
              .append(timer.isAutoStart()
                ? (timer.getClientId() + ".start();\n") : "").append("\n-->\n</script>");
        }
    }
}
